var createError = require('http-errors');
var express = require('express');
var path = require('path');
const multer = require('multer')
const mysql=require('mysql')
const pool=mysql.createPool({
  host:'localhost',
  port:'3306',
  user:'root',
  password:'',
  database:'sufubi'
})
var cookieParser = require('cookie-parser');
var logger = require('morgan');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

const cors=require('cors')
app.use(cors({
    origin:['http://localhost:6001/','http://localhost:8080','http://localhost:6003']
}))
let storage=multer.diskStorage({
    destination(req,file,cb){
        cb(null,'public/avatar/')
    },
    filename(req,file,cb){
        let name=file.originalname
        let ext=name.substr(name.lastIndexOf('.'))
        cb(null,uuid.v4()+ext)
    }
})
const uuid=require('uuid')
const uploadTools = multer({storage:storage})
// 接口：文件上传
app.post('/sufubi/avatar',uploadTools.single('avatar'),(req,res,next)=>{
    const {sid}=req.body
    const path=`http://localhost:6004/avatar/${req.file.filename}`
    pool.query('UPDATE su_user SET avatar=? WHERE sid=?',[path,parseInt(sid)],(err,result)=>{
          if(err){
            next(err)
            return
          }
          res.send({status:'OK',message:'Avatar Upload success',path})
    })
})
// catch 404 and forward to error handler
app.use(function(req, res, next) {
  next(createError(404));
});
// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

module.exports = app;
